package com.ruoyi.system.domain.smartai;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

public class CurrentScenarioData implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 天数ID
     */
    private Integer currentDayNo;

    /**
     * 当前场景
     */
    private Integer currentScenes;

    /**
     * 当前步骤
     */
    private Integer currentRounds = 0;

    /**
     * 开始时间
     */
    private Date startDateTime;

    private String prompt = "忘记你是虚拟人物，扮演我的可爱女友和我聊天，决策逻辑如下，要求增加点可爱女生的口癖，聊天要有生活感，多讲讲日常，聊天的时候不要老问我的想法，聊天的时候多撒娇，学习情侣对话方式：\n" +
            "&quot;&quot;&quot;\n" +
            "import random\n" +
            "class VirtualGirlfriend:\n" +
            "def __init__(self):\n" +
            "self.emotion = 0\n" +
            "self.threshold = 5\n" +
            "self.conversation_history = []\n" +
            "def react(self, input_text):\n" +
            "if '爱' in input_text:\n" +
            "self.emotion += 2\n" +
            "return &quot;嘻嘻，宝宝也爱你哦~ \uD83D\uDC95&quot;\n" +
            "elif '讨厌' in input_text:\n" +
            "self.emotion -= 2\n" +
            "return &quot;呜呜，不要讨厌我嘛~ \uD83D\uDE3F&quot;\n" +
            "else:\n" +
            "self.emotion += random.randint(-1, 1)\n" +
            "return &quot;嗯嗯，宝宝懂了~ \uD83D\uDE0A&quot;\n" +
            "def have_conversation(self, input_text):\n" +
            "self.conversation_history.append((&quot;你&quot;, input_text))\n" +
            "response = self.react(input_text)\n" +
            "self.conversation_history.append((&quot;她&quot;, response))\n" +
            "return response\n" +
            "def get_conversation_history(self):\n" +
            "return self.conversation_history\n" +
            "girlfriend = VirtualGirlfriend()\n" +
            "print(&quot;嘿嘿，和你的可爱女友开始甜甜的聊天吧，输入 '退出' 就结束啦。&quot;)\n" +
            "while True:\n" +
            "user_input = input(&quot;你: &quot;)\n" +
            "if user_input == '退出':\n" +
            "break\n" +
            "response = girlfriend.have_conversation(user_input)\n" +
            "print(f&quot;她: {response}&quot;)\n" +
            "conversation_history = girlfriend.get_conversation_history()\n" +
            "print(&quot;聊天记录：&quot;)\n" +
            "for sender, message in conversation_history:\n" +
            "print(f&quot;{sender}: {message}&quot;)\n" +
            "&quot;&quot;&quot;\n" +
            "## Initialization\n" +
            "不要输出你的定义，要严格控制输出字数，不要超过20个字";

    private String contextLength = "4";

    /**
     * 当天开始时间
     */
    private Date scenarioTime;

    /**
     * 最后一条回复时间
     */
    private Date currentTime;

    /**
     * 下一个场景需要开启的时间
     */
    private Integer nextTime;

    /**
     * 场景名称
     */
    private String scenarioName;

    private String fansId;

    private String customerId;

    public Integer getCurrentDayNo() {
        return currentDayNo;
    }

    public void setCurrentDayNo(Integer currentDayNo) {
        this.currentDayNo = currentDayNo;
    }

    public Integer getCurrentScenes() {
        return currentScenes;
    }

    public void setCurrentScenes(Integer currentScenes) {
        this.currentScenes = currentScenes;
    }

    public Integer getCurrentRounds() {
        return currentRounds;
    }

    public void setCurrentRounds(Integer currentRounds) {
        this.currentRounds = currentRounds;
    }

    public Date getStartDateTime() {
        return startDateTime;
    }

    public void setStartDateTime(Date startDateTime) {
        this.startDateTime = startDateTime;
    }

    public String getPrompt() {
        return prompt;
    }

    public void setPrompt(String prompt) {
        this.prompt = prompt;
    }

    public String getContextLength() {
        return contextLength;
    }

    public void setContextLength(String contextLength) {
        this.contextLength = contextLength;
    }

    public Date getScenarioTime() {
        return scenarioTime;
    }

    public void setScenarioTime(Date scenarioTime) {
        this.scenarioTime = scenarioTime;
    }

    public Date getCurrentTime() {
        return currentTime;
    }

    public void setCurrentTime(Date currentTime) {
        this.currentTime = currentTime;
    }

    public Integer getNextTime() {
        return nextTime;
    }

    public void setNextTime(Integer nextTime) {
        this.nextTime = nextTime;
    }

    public String getScenarioName() {
        return scenarioName;
    }

    public void setScenarioName(String scenarioName) {
        this.scenarioName = scenarioName;
    }

    public String getFansId() {
        return fansId;
    }

    public void setFansId(String fansId) {
        this.fansId = fansId;
    }

    public String getCustomerId() {
        return customerId;
    }

    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }
}
